package cn.tedu.spring.life;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * Spring Bean对象的生命周期
 */
@Component
public class Life {
    private String meaning;

    public Life() {
        System.out.println("1.实例化阶段[调用无参构造方法]");
    }
@Value("世界这么大")
    public void setMeaning(String meaning) {
        this.meaning = meaning;
    System.out.println("2.属性赋值[调用set方法]");
    }
    @PostConstruct
    public void init() {
        System.out.println("3.初始化阶段[调用@PostConstruct注解的方法]");
    }
    @PreDestroy
    public void destroy() {
        System.out.println("5.销毁阶段[调用PreDestroy]");
    }
}
/*
    Bean的生命周期
    1.实例化
    2.依赖注入
    3.初始化
    4.使用
    5.销毁
 */
